//
// Created by Tony on 2024/5/19.
//

#ifndef LEXER_INT_64_TOKEN_H
#define LEXER_INT_64_TOKEN_H

#include "Token.h"

namespace Lexer {

class Int64Token final : public Token {
    int64_t value;

public:
    Int64Token(const Position& position, int64_t value) : Token(position), value(value) {}

    TokenType type() override { return TokenType::INT64_LITERAL; }

    int64_t getValue() const { return value; }

    string toString() override { return std::to_string(value); }
};

} // namespace Lexer

#endif // LEXER_INT_64_TOKEN_H
